package com.tudouji.project.bill.mapper;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.tudouji.project.bill.domain.Producereport;
import com.tudouji.project.bill.domain.vo.ProduceItemRep;
import com.tudouji.project.bill.domain.vo.ProducePlanReportVO;
import com.tudouji.project.bill.domain.vo.ProduceRep;

/**
 * 生产报Mapper接口
 *
 * @author tudouji
 * @date 2021-03-01
 */
public interface ProducereportMapper {
    /**
     * 查询生产报
     *
     * @param id 生产报ID
     * @return 生产报
     */
    public Producereport selectProducereportById(Long id);

    /**
     * 查询生产报列表
     *
     * @param producereport 生产报
     * @return 生产报集合
     */
    public List<Producereport> selectProducereportList(Producereport producereport);

    /**
     * 查询所有带明细生产报列表
     *
     * @param producereport 生产报
     * @return 生产报集合
     */
    public List<Producereport> selectProducereportListAll(Producereport producereport);
    public List<ProduceItemRep> yl(Producereport producereport);
    public List<ProduceItemRep> fl(Producereport producereport);

    /**
     * 查询生产报列表
     *
     * @param producereport 生产报
     * @return 生产报集合
     */
    public List<Producereport> selectPRData(Date startdate);

    /**
     * 新增生产报
     *
     * @param producereport 生产报
     * @return 结果
     */
    public int insertProducereport(Producereport producereport);

    /**
     * 修改生产报
     *
     * @param producereport 生产报
     * @return 结果
     */
    public int updateProducereport(Producereport producereport);

    /**
     * 删除生产报
     *
     * @param id 生产报ID
     * @return 结果
     */
    public int deleteProducereportById(Long id);

    public int deleteAll(String starttime);

    public int deleteAllItem(String starttime);

    /**
     * 批量删除生产报
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProducereportByIds(Long[] ids);

    /**
     * 生产计划报表
     *
     * @param producePlanReportVO
     * @return
     */
    public List<ProducePlanReportVO> producePlanReport(ProducePlanReportVO producePlanReportVO);

    public BigDecimal selectMaterial(String plcode);

    public void insertReportHistory(String nowStr);

    public void insertReportItemHistory(String orderdate);

    public void updateProducePlan(String planguid);
}
